//创建一个整型数组，完成对数组的操作
//1. 实现函数init() 初始化数组为全0
//2. 实现print()  打印数组的每个元素
//3. 实现reverse()  函数完成数组元素的逆置。
#include <stdio.h>
#include<stdlib.h>

//数组初始化为0 (分别将数组中每个元素初始化为0)
void init(int arr[],int size) {
	for (int i = 0; i < size; i++) {
		arr[i] = 0;
	}
}

void printArr(int arr[],int size) {
	for (int i = 0; i < size; i++) {
		printf("%d ", arr[i]);
	}
	printf("\n");
}

void reverse(int arr[], int size) {
	//在使用已定义好的指针变量时，在变量名前面不能加 *（eg: int a, *p; *p = &a;这是错误的）
	//在这里，我们在定义的时候，可以这么写（eg: int *p = &a;）
	int *pre = &arr[0], *last = &arr[size-1]; 
	for (; pre < last; pre++, last--) {
		int temp = *pre;
		*pre = *last;
		*last = temp;
	}
}

int main() {
	int arr[] = {1, 2, 5, 3, 9, 0, 6};
	int size = sizeof(arr) / sizeof(arr[0]);

	printf("数组中元素分别为：");
	printArr(arr, size);

	reverse(arr,size);
	printf("数组中元素逆置后输出为：");
	printArr(arr, size);
	
	init(arr, size);
	printf("将数组中的元素初始化为0：");
	printArr(arr, size);

	system("pause");
	return 0;
}
